An application is a computer program written in computer code by one or more programmers, and which is executable by a computer to perform a certain function, activity or task. Almost all conventional applications include a user interface (UI) that is generated by the computer and rendered on a display, to visualize certain aspects of the application as well as enable user interaction with the application. Given the great variety among modern application development, hosting, and deployment platforms, there needs to be special consideration in providing external customers with a harmonized and unified UI that is built seamlessly and efficiently.
Conventional applications typically utilize only one version control system, and all developers of the combined application make contributions to same code repository. While various child applications or portions of the UI may be developed separately, all of the code is integrated in and tested from a common repository. Changes done by teams developing other child applications of the parent application can influence each other. For example, team A, who is working on a first child application of the parent application, may implement a bug that affects a second child application being worked on by team B. This issue may be difficult to discern until the application is integrated. It would be useful to have the ability to control for and/or identify such bugs at an earlier stage in the development process.
While the end-user “sees” only one application, the process of building the application from the various repositories storing the respective parent and child applications can be challenging and/or cumbersome. What is needed is a system and method to develop a harmonized UI application giving the teams the freedom of having their own code repository, and bringing the functionality together during build steps to have one consistent application facing the external consumers. Further, what is needed is having multiple applications reachable via the same web address in the same context without having each team to contribute to the same code repository. Finally, team-specific development processes need to be kept isolated from central build process, allowing each team to develop and test their part of the overall application independently, for an optimal development environment.